package luj.game.robot.internal.admin.actor;

import java.util.LinkedHashMap;
import java.util.Map;
import luj.cluster.api.actor.ActorMessageHandler;
import luj.cluster.api.actor.Tellable;
import luj.game.robot.internal.concurrent.parent.RobotBossDependency;
import luj.game.robot.internal.net.http.collect.HandleMap;

public class BotAdminActor {

  public interface Handler<M> extends ActorMessageHandler<BotAdminActor, M> {
    // NOOP
  }

  public BotAdminActor(HandleMap httpHandleMap) {
    _httpHandleMap = httpHandleMap;
  }

  public Tellable getBossRef() {
    return _bossRef;
  }

  public void setBossRef(Tellable bossRef) {
    _bossRef = bossRef;
  }

  public RobotBossDependency getBossDependency() {
    return _bossDependency;
  }

  public void setBossDependency(RobotBossDependency bossDependency) {
    _bossDependency = bossDependency;
  }

  public HandleMap getHttpHandleMap() {
    return _httpHandleMap;
  }

  @Deprecated
  public Map<Integer, AdminBotInfo> getInstanceMap() {
    return _instanceMap;
  }

  private Tellable _bossRef;
  private RobotBossDependency _bossDependency;

  private final HandleMap _httpHandleMap;
  private final Map<Integer, AdminBotInfo> _instanceMap = new LinkedHashMap<>();
}
